<?php

class ProdutoController extends Site_Controller_Action
{
    
    public $dir = 'public/upload/orcamento/';
    
    public function init()
    {

    }

    public function indexAction()
    {
        // action body
    }
    
    public function detalheAction()
    {   
        $this->clearSessao();
        
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/jquery.elevateZoom-3.0.7.min.js');
        //$this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/jquery.fancybox.pack.js');
        
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/validation/dist/jquery.validate.min.js');
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/view/produto.js?1=42');
        
        $id = $this->_getParam('id', 0);
        
        
        //$obj = new Sistema_Model_DbTable_Produto();
        //$result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
        $result = $this->db->fetchRow('SELECT SQL_CACHE * FROM PRODUTO WHERE PRO_ID = '.$id.' and PRO_STA = 1');
        
        $this->view->result = $result;
        
	// incrementa quantidade de acesso no produto
        //$obj->update(array('PRO_QTDACE' => ($result['PRO_QTDACE'] + 1)),'PRO_ID = ' . $id);
        $this->db->update('PRODUTO', array('PRO_QTDACE' => ($result['PRO_QTDACE'] + 1)),'PRO_ID = ' . $id);
	
        //$cat = new Sistema_Model_DbTable_Categoria();
        //$cat = $cat->fetchRow('CAT_ID ='.$result['CAT_ID']);
        $cat = $this->db->fetchRow('SELECT SQL_CACHE * FROM CATEGORIA WHERE CAT_ID ='.$result['CAT_ID']);
        $this->view->categoria  = $cat;
        
        $listacor = '0';
        //$gradecor = new Sistema_Model_DbTable_GradecorHasCor();
        //$gradecor = $gradecor->fetchAll('GRC_ID = '.$result['GRC_ID'].' and GHC_CORPRI = 1');
        $gradecor = $this->db->fetchAll('SELECT SQL_CACHE * FROM GRADECOR_HAS_COR WHERE GRC_ID = '.$result['GRC_ID'].' and GHC_CORPRI = 1');
        foreach($gradecor as $gc) $listacor .= ','.$gc['COR_ID'];
        
        //$cores = new Sistema_Model_DbTable_Cor();
        //$cores = $cores->fetchAll('COR_ID in ('.$listacor.') and COR_STA = 1');
        $cores = $this->db->fetchAll('SELECT SQL_CACHE * FROM COR WHERE COR_ID in ('.$listacor.') and COR_STA = 1');
        $this->view->cores = $cores;
        
        //$cores = new Sistema_Model_DbTable_Cor();
        //$cores = $cores->fetchAll('COR_ID not in ('.$listacor.') and MAT_ID ='.$result['MAT_ID'].' and COR_STA = 1');
        $cores = $this->db->fetchAll('SELECT SQL_CACHE * FROM COR WHERE COR_ID not in ('.$listacor.') and MAT_ID ='.$result['MAT_ID'].' and COR_STA = 1');
        $this->view->coressec = $cores; 
        
        //$coresdet = new Sistema_Model_DbTable_Cordetalhe();
        //$coresdet = $coresdet->fetchAll('GCD_ID ='.$result['GCD_ID'].' and CRD_STA = 1');
        $coresdet = $this->db->fetchAll('SELECT SQL_CACHE * FROM CORDETALHE WHERE GCD_ID ='.$result['GCD_ID'].' and CRD_STA = 1');
        $this->view->coresdet = $coresdet; 
        
        $where = '';
        $list = '0,';
        //$tam = New Sistema_Model_DbTable_ProdutoHasTamanhos();
        //$data = $tam->fetchAll('PRO_ID = ' . $id)->toArray();
        $data = $this->db->fetchAll('SELECT SQL_CACHE * FROM PRODUTO_HAS_TAMANHOS WHERE PRO_ID = ' . $id);
        foreach($data as $dat) $list .= $dat['TAM_ID'].',';
        
        //$ght = new Sistema_Model_DbTable_GradetamanhosHasTamanhos();
        //$ght = $ght->fetchAll('GRA_ID ='.$result['GRA_ID']);
        $ght = $this->db->fetchAll('SELECT SQL_CACHE * FROM GRADETAMANHOS_HAS_TAMANHOS WHERE GRA_ID ='.$result['GRA_ID']);
        $this->view->tamanho = $ght;
        
        //$gra = new Sistema_Model_DbTable_Gradetamanhos();
        //$gra = $gra->fetchRow('GRA_ID ='.$result['GRA_ID']);
        $gra = $this->db->fetchRow('SELECT SQL_CACHE * FROM GRADETAMANHOS WHERE GRA_ID ='.$result['GRA_ID']);
        
        //mod = new Sistema_Model_DbTable_Modelagem();
        //$mod = $mod->fetchRow('MDL_ID ='.$gra->MDL_ID);
        $mod = $this->db->fetchRow('SELECT SQL_CACHE * FROM MODELAGEM WHERE MDL_ID ='.$gra['MDL_ID']);
        $this->view->modelagem  = $mod; 
        
        //$mat = new Sistema_Model_DbTable_Material();
        //$mat =  $mat->fetchRow('FOR_ID ='.$result['FOR_ID'].' and MAT_ID ='.$result['MAT_ID']);
        $mat = $this->db->fetchRow('SELECT SQL_CACHE * FROM MATERIAL WHERE FOR_ID ='.$result['FOR_ID'].' and MAT_ID ='.$result['MAT_ID']);
        $this->view->material  = $mat; 
        
        $tam = $this->db->fetchAll('SELECT SQL_CACHE g.* FROM GRADETAMANHOS_HAS_TAMANHOS g, TAMANHOS t WHERE g.TAM_ID = t.TAM_ID AND t.TAM_STA = 1 AND g.GRA_ID = '.$result['GRA_ID']);
        $this->view->tam = $tam;

        $leg = $this->db->fetchAll('SELECT SQL_CACHE g.* FROM GRADETAMANHOS_HAS_LEGMED g, LEGENDAMEDIDAS l WHERE g.LGM_ID = l.LGM_ID AND l.LGM_STA = 1 AND g.GRA_ID = '.$result['GRA_ID']);
        $this->view->leg = $leg;
        
        $tam2 = $this->db->fetchAll('SELECT SQL_CACHE g.* FROM GRADETAMANHOS_HAS_TAMANHOS g, TAMANHOS t WHERE g.TAM_ID = t.TAM_ID AND t.TAM_STA = 1 AND g.GRA_ID = '.$result['GRA_ID2']);
        $this->view->tam2 = $tam2;

        $leg2 = $this->db->fetchAll('SELECT SQL_CACHE g.* FROM GRADETAMANHOS_HAS_LEGMED g, LEGENDAMEDIDAS l WHERE g.LGM_ID = l.LGM_ID AND l.LGM_STA = 1 AND g.GRA_ID = '.$result['GRA_ID2']);
        $this->view->leg2 = $leg2;
        
    }
    
    public function solicitacaoAction()
    {
        $this->clearSessao();
        
        $this->_helper->layout->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender();
        $ok = true;
        $msg = '';
        $script = '';
        $formData = $this->getRequest()->getPost();
        
        //$obj = new Sistema_Model_DbTable_Produto();
        //$result = $obj->fetchRow('PRO_ID = '.$formData['id'].' and PRO_STA = 1');
        $query = 'SELECT SQL_CACHE * FROM PRODUTO WHERE PRO_ID = '.$formData['id'].' and PRO_STA = 1';
        $result = $this->db->fetchRow($query);
        
        
        if($formData['cor'] <= 0 || empty($formData['cor'])){
           $ok = false;
           $msg = 'Selecione a cor do produto!';
        }
        else if(count($formData['tam']) <= 0 || empty($formData['tam'])){
           $ok = false;
           $msg = 'Selecione ao menos um tamanho!';
        }
        else if($formData['qtd'] < $result['PRO_QTDMIN']){
           $ok = false;
           $msg = 'Quantidade no mínimo de '.$result['PRO_QTDMIN'].' peças!';
           $script = '<script> $(function(){ $("#qtd").focus();  });</script>';
        }
        
        // tudo ok
        if($ok){
            $script = '<script> location.href = "'.$this->_urlbase.'/'.$this->_controller.'/carrinho";</script>';
            
            $this->clearSessao();
            
            $sessao = new Zend_Session_Namespace('carrinho');
            
            $sessao->carrinho['pro_id'] = $formData['id'];
            $sessao->carrinho['cor_id'] = $formData['cor'];
            $sessao->carrinho['crd_id'] = $formData['cor_det'];
            $sessao->carrinho['tam_id'] = $formData['tam'];
            $sessao->carrinho['qtd'] = $formData['qtd'];
        }
        
        echo json_encode(array('ok' => $ok,'msg'=>$msg,'script'=>$script));
    }
    
    public function carrinhoAction()
    {
        
        $this->view->headLink()->prependStylesheet($this->_urlbase.'/public/media/js/jquery-ui-1.10.2.custom/css/custom-theme/jquery-ui-1.10.2.custom.css'); 
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js');
        
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/validation/dist/jquery.validate.min.js');
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/view/carrinho.js?1=18');
        
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/jquery.maskMoney.js');
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/jquery.maskedinput.min.js');
        $this->view->headScript()->appendFile($this->_urlbase.'/public/media/js/mask.js');
        
        $sessao = new Zend_Session_Namespace('carrinho');
        
        if($sessao->carrinho['pro_id'] <= 0) $this->_helper->redirector('index','index');
        
        $id = $sessao->carrinho['pro_id'];
        
        //$obj = new Sistema_Model_DbTable_Produto();
        //$result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
        $query = 'SELECT SQL_CACHE * FROM PRODUTO WHERE PRO_ID = '.$id.' and PRO_STA = 1';
        $result = $this->db->fetchRow($query);
        
        $this->view->produto = $result;
        
        $this->view->carrinho = $sessao->carrinho;
        
        //$cores = new Sistema_Model_DbTable_Cor();
        //$cores = $cores->fetchRow('COR_ID = '.$sessao->carrinho['cor_id']);
        $query = 'SELECT SQL_CACHE * FROM COR WHERE COR_ID = '.$sessao->carrinho['cor_id'];
        $cores = $this->db->fetchRow($query);
        $this->view->cores = $cores;

    }
    
    public function confirmarcarrinhoAction()
    {
        $this->_helper->layout->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender();
        $ok = true;
        $msg = '';
        $script = '';
        $formData = $this->getRequest()->getPost();
        
        $sessao = new Zend_Session_Namespace('carrinho');
        
        $id = $sessao->carrinho['pro_id'];
        
        //$obj = new Sistema_Model_DbTable_Produto();
        //$result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
        //$query = 'SELECT SQL_CACHE * FROM PRODUTO WHERE PRO_ID = '.$id.' and PRO_STA = 1';
        //$result = $this->db->fetchRow($query);
        
        $qtd = 0;
        foreach ($formData['tam'] as $tam) $qtd += $tam;
        
        if($qtd != $sessao->carrinho['qtd']){
           $ok = false;
           $msg = "Quantidade solicitada: ".$sessao->carrinho['qtd']."\nQuantidade digitada: ".$qtd;
           $script = '<script> $(function(){ $("#qtd").focus();  });</script>';
        }
        
        // tudo ok
        if($ok){ 
            //$script = '<script> location.href = "'.$this->_urlbase.'/'.$this->_controller.'/confirmacao";</script>';
            $script = '<script> $("#form").submit(); </script>';
        }
        
        echo json_encode(array('ok' => $ok,'msg'=>$msg,'script'=>$script));
    }
    
    public function confirmacaoAction()
    {
        
        $sessao = new Zend_Session_Namespace('carrinho');
        
        try {
        
            if($this->getRequest()->isPost()) {

                $formData = $this->getRequest()->getPost();
                
                $sessao = new Zend_Session_Namespace('carrinho');

                $id = $sessao->carrinho['pro_id'];

                if($id <= 0) $this->_helper->redirector('index','index');

                //$obj = new Sistema_Model_DbTable_Produto();
                //$result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
                $query = 'SELECT SQL_CACHE * FROM PRODUTO WHERE PRO_ID = '.$id.' and PRO_STA = 1';
                $result = $this->db->fetchRow($query);
                
                $this->view->produto = $result;

                if($sessao->carrinho['orc_id'] == 0){ 

                    // procura ja já tem solicitante
                    //$sol = new Sistema_Model_DbTable_Solicitante();
                    //$res_sol = $sol->fetchRow('SOL_NOM like "'.$formData['sol_nom'].'"');
                    $query = 'SELECT SQL_CACHE SOL_ID FROM SOLICITANTE WHERE SOL_NOM like "'.$formData['sol_nom'].'"';
                    $res_sol = $this->db->fetchRow($query);
                    
                    if($res_sol['SOL_ID'] > 0){
                        $sol_id = $res_sol['SOL_ID'];
                        
                        $data = array(
                            'SOL_NOM' => $formData['sol_nom'],
                            'SOL_EMP' => $formData['sol_emp'],
                            'SOL_TEL' => $formData['sol_tel'],
                            'SOL_EML' => $formData['sol_eml'],
                            'SOL_CID' => $formData['sol_cid'],
                            'SOL_UF' => $formData['sol_uf'],
                        );
                        //$sol->update($data,'SOL_ID ='.$sol_id);
                        $this->db->update('SOLICITANTE',$data,'SOL_ID ='.$sol_id);
                    } else {
                        // gravar dados da empresa
                        $data = array(
                            'SOL_NOM' => $formData['sol_nom'],
                            'SOL_EMP' => $formData['sol_emp'],
                            'SOL_TEL' => $formData['sol_tel'],
                            'SOL_EML' => $formData['sol_eml'],
                            'SOL_CID' => $formData['sol_cid'],
                            'SOL_UF' => $formData['sol_uf'],
                        );

                        //$sol->insert($data);
                        //$sol_id =  $sol->getAdapter()->lastInsertId();
                        $this->db->insert('SOLICITANTE',$data);
                        $sol_id =  $this->db->lastInsertId();
                    }
                    
                    $sessao = new Zend_Session_Namespace('segmento');
                    
                    // gravar orcamento
                    $data = array(
                        'ORC_DATA' => date('Y-m-d'),
                        'ORC_HOR' => date('H:i:00'),
                        'ORC_VAL' => '',
                        'ORC_STA' => 1,
                        'SOL_ID'  => $sol_id,
                        'PRO_ID'  => $sessao->carrinho['pro_id'],
                        'COR_ID'  => $sessao->carrinho['cor_id'],
                        'ORC_SOLOBS' => $formData['sol_obs'],
                        'USU_ID'    => 1,
                        'CTS_ID'    => $sessao->CTS_ID,
                    );
                    //$orc = new Sistema_Model_DbTable_Orcamento();
                    //$orc->insert($data);
                    //$orc_id =  $orc->getAdapter()->lastInsertId();
                    $this->db->insert('ORCAMENTO',$data);
                    $orc_id = $this->db->lastInsertId();
                            
                    $sessao->carrinho['orc_id'] = $orc_id;

                    foreach ($formData['tam'] as $tam => $qtd) {
                        if($qtd > 0){ // para salvar item quantidade deve ser maior que 0 
                            $data = array(
                                'ORC_ID' => $orc_id,
                                'TAM_ID'  => $tam,
                                'ORP_QTD'  => $qtd,
                            );
                            //$orp = new Sistema_Model_DbTable_Orcamentoproduto();
                            //$orp->insert($data);
                            $this->db->insert('ORCAMENTO_PRODUTO',$data);
                        }
                    }   
                    
                    if(is_array($sessao->carrinho['crd_id']) && isset($sessao->carrinho['crd_id']))
                    foreach ($sessao->carrinho['crd_id'] as $cor) {
                        $data = array(
                            'ORC_ID' => $orc_id,
                            'COR_ID'  => $cor,
                        );
                        //$cor = new Sistema_Model_DbTable_Orcamentocordet();
                        //$cor->insert($data);
                        $this->db->insert('ORCAMENTO_CORDET',$data);
                    } 
                    

                    // gravar arquivo
                    
                    Zend_Loader::loadClass('imagem','library');
                    $returnImg = imagem::upload('sol_fil',$this->dir,$orc_id);
                    imagem::rename($orc_id,$this->dir,$_FILES['sol_fil']);
                    
                    //$filename = '';
                    //$img = glob($this->dir.$orc_id);
                    //foreach($img as $filetemp) $filename = $filetemp;
                    //imagem::reizeFull($filename,$filename, '200', '200');

                }else{
                    
                    $this->_helper->redirector('index','index');
                    
                    /*
                    if($sessao->carrinho['orc_id'] <= 0) $this->_helper->redirector('index','index');

                    $id = $sessao->carrinho['pro_id'];

                    if($id <= 0) $this->_helper->redirector('index','index');

                    $obj = new Sistema_Model_DbTable_Produto();

                    $result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
                    $this->view->produto = $result;

                    // procurar orcamento
                    $orc = new Sistema_Model_DbTable_Orcamento();
                    $res_orc = $orc->fetchRow('ORC_ID ='.$sessao->carrinho['orc_id']);
                    $this->view->orc = $res_orc;
                    */
                }

            }else{
                
                $this->_helper->redirector('index','index');
                
                /*
                if($sessao->carrinho['orc_id'] <= 0) $this->_helper->redirector('index','index');

                $id = $sessao->carrinho['pro_id'];

                if($id <= 0) $this->_helper->redirector('index','index');

                $obj = new Sistema_Model_DbTable_Produto();

                $result = $obj->fetchRow('PRO_ID = '.$id.' and PRO_STA = 1');
                $this->view->produto = $result;

                // procurar orcamento
                $orc = new Sistema_Model_DbTable_Orcamento();
                $res_orc = $orc->fetchRow('ORC_ID ='.$sessao->carrinho['orc_id']);
                $this->view->orc = $res_orc;
                */
            }
            
            $this->clearSessao();
            
        } catch(Exception $ex) {
            Zend_Loader::loadClass('errordb','library');
            echo '<script>alert("'.$ex->getMessage().'");</script>';
        }
    }
    
    /*
    public function enviarorcamentoAction()
    {
        // mudar o status do orcamento
        $sessao = new Zend_Session_Namespace('carrinho');
        
        if($sessao->carrinho['orc_id'] <= 0) $this->_helper->redirector('index','index');
        
        $orc = new Sistema_Model_DbTable_Orcamento();
        
        $orc->update(array('ORC_STA'=> 1),'ORC_ID ='.$sessao->carrinho['orc_id']);
        
        $sessao->carrinho = array();
    }
    */
    
    public function clearSessao() {     
        
        $sessao = new Zend_Session_Namespace('carrinho');
            
        unset($sessao->carrinho); 
        
        $sessao->carrinho['pro_id'] = '';
        $sessao->carrinho['cor_id'] = '';
        $sessao->carrinho['crd_id'] = array();
        $sessao->carrinho['tam_id'] = array();
        $sessao->carrinho['qtd'] = '';
    }
}

